The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Passwords are widely used to secure computing systems, networks, and other secure environments. A password is often a string of characters that is used as a secret within a cryptographic protocol or a security system. When a password includes the space character, it is sometimes called a passphrase. Passwords are often generated by human users, who are then expected to remember the passwords for future access to secure systems.
People are notoriously bad at generating unpredictable passwords. Typically, users select easy to remember passwords such as English words or names of people, pets and places. These passwords are easily guessable by an attacker and are considered weak. A password checker is function that a security system can use to reject guessable passwords before the system accepts them for use.
Passwords may be checked for a minimum number of letters mixed with capitals, number and symbols. This method is not effective for detecting weak passwords derived from a dictionary, and will not meet the unpredictability requirements of prudent security policies. Other methods include checking the password against a dictionary. This method requires a large amount to memory for storing the dictionary.